<%@page import="utilities.googleMap.DistanceMatrix"%>
<%@page import="utilities.FormUtilities"%>
<%@page import="utilities.FbUtilities"%>
<%@page import="entity.Adesione"%>
<%@page import="entity.UtenteRegistrato"%>
<%@page import="statefulSB.UtenteLoggatoLocal"%>
<%@page import="utilities.Utilities"%>
<%@page import="java.util.GregorianCalendar"%>
<%@page import="entity.Annuncio"%>
<%@ page pageEncoding="UTF-8" %>

<%! 
    Annuncio annuncio;
    UtenteRegistrato utenteLoggato;
    Boolean isCreatore;
    Boolean isIscritto;
    Adesione adesione;
    Boolean mostroDettagli = false; //se true, non serve mettere l'url del sito né i bottoni mostra dettagli, perché già li mette il chiamante
    UtenteRegistrato creatore;
    Boolean mostraPagamento;
%>

<%
    mostraPagamento = request.getAttribute("mostraPagamento") != null ? (Boolean)request.getAttribute("mostraPagamento") : true;
    utenteLoggato = Utilities.getUtenteLoggato(request);
    annuncio = (Annuncio) request.getAttribute("annuncio");
    if (annuncio == null) Utilities.errore("nessun annuncio specificato", request, response);
    isCreatore = !(utenteLoggato == null) && utenteLoggato.equals(annuncio.getCreatoreAnnuncio());
    adesione = utenteLoggato == null ? null : annuncio.isIscritto(utenteLoggato);
    isIscritto = adesione!=null && adesione.getStato().equals(Adesione.StatoAdesione.ACCETTATA);
    mostroDettagli = (Boolean) request.getAttribute("mostroDettagli");    
    creatore = annuncio.getCreatoreAnnuncio();
%>



<div>
        <% if(mostroDettagli==null || mostroDettagli==false){ %>
            <h4><%= annuncio.getSito().toString() %></h4>
        <% } %>
        
        <% if (utenteLoggato != null && annuncio.getCreatoreAnnuncio() != null){ %>
            <div class="iconp">
                <span class="icon"><img src="img/icone/personcina.png" alt="creato da:"/></span>
                <span class="descr"> 
                    <a href="Controller?action=mostraProfilo&utente=<%= creatore.getId() %>"><%= creatore.getNome() %> <%= creatore.getCognome() %></a>
                    <br/>
                    <span class="stars"><%= FormUtilities.drawStaticStars(annuncio.getId().intValue(), creatore.getFeedback().getFeedbackCreatore(), creatore.getFeedback().getNumFeedbackCreatore()) %> 
                    su <%= creatore.getFeedback().getNumFeedbackCreatore() %> voti da creatore. 
                    </span>
                    <% if (utenteLoggato != null && !isCreatore && utilities.Utilities.getUtenteLoggatoLocal(request).getFacebookToken() != null && FbUtilities.isFriendOf(Utilities.getUtenteLoggatoLocal(request), creatore)){ %>
                        <br/>amico di Facebook!
                    <% } %>
                </span>
            </div>
        <% } %>
        <div class="iconp"><span class="icon"><img src="img/icone/casetta.png" alt="indirizzo per il ritiro"/></span><span class="descr">
            <%= annuncio.getIndirizzoRitiro().toString() %> 
            <% if (utenteLoggato != null && !isCreatore){ %>
                - a <%= utilities.googleMap.DistanceMatrix.distanceFrom(utenteLoggato.getIndirizzo().getDescrizione(), annuncio.getIndirizzoRitiro().toString())/1000 %> 
                Km da te
                <a href="javascript:void(0)" onclick="mostraMappaPopup(event, '<%= utenteLoggato.getIndirizzo().toString() %>', '<%= annuncio.getIndirizzoRitiro().toString() %>');">Ottieni indicazioni</a>
            <% } %>
            </span>
        </div>
        <div class="iconp"><span class="icon"><img src="img/icone/calendario.png" alt="date di scadenza"/></span><span class="descr"> Chiusura: <%= Utilities.formattaData(annuncio.getDataChiusura()) %> <br/> Ordine: <%= Utilities.formattaData(annuncio.getDataOrdine()) %></span></div>
        <div class="iconp"><span class="icon"><img src="img/icone/persone.png" alt="iscritti"/></span><span class="descr"> 
                <%= annuncio.getNumIscrittiAccettati() %> <% if (annuncio.getNumIscrittiAccettati() != 1){%> iscritti <%} else{ %> iscritto <%} %>
                <br/>
                <% 
                    if(annuncio.isSupportaSpedGratis() && annuncio.getMancaASpedGratis()<=0){
                %>
                        <em>spedizione gratuita!</em> 
                        <% if (!isCreatore){ %>
                            (1&euro; al creatore)
                        <% } %>
                <% 
                    }else{
                %>
                <% if (isCreatore) {%> 
                    spese di spedizione condivise: <%= Math.ceil(annuncio.getCostoSpedizionePerCreatore()*100)/100 %> &euro; 
                <% } else if (isIscritto) { %>
                    spese di spedizione condivise: <%= Math.ceil(annuncio.getCostoSpedizionePerIscritto()*100)/100 %> &euro;
                <% } else {%> spese di spedizione condivise: <%= Math.ceil(annuncio.getCostoSpedizionePerAltri()*100)/100 %> &euro; <%}%>
                
                <%
                        if (annuncio.isSupportaSpedGratis()){
                %>
                            <br/>- <%= annuncio.getMancaASpedGratis() %> &euro; alla spedizione gratuita
                <%
                        }
                    }                   
                %>
                
                
        </span></div>
        <% if (isCreatore && annuncio.isSupportaSpedGratis()){ %>
            <div class="iconp"><span class="icon">
                    <img src="img/icone/money.png" alt="date di scadenza"/></span><span class="descr">La tua spesa &egrave di <%= annuncio.getSpesaCreatore() %> &euro; 
                        <% if (!annuncio.isChiuso()){ %>
                            <a href="javascript:void(0)" onclick="mostraModificaSpesaCreatorePopup(event, <%= annuncio.getId() %>);">modifica</a> 
                        <% } %>
                </span> </div>
        <% } %>
        
        <% if (annuncio.isChiuso()){ %>
                Annuncio chiuso<br/>
        <% } 
           if (isCreatore){ %>
                Questo annuncio &egrave; tuo<br/>
        <% } %>
        

        
        <%  
        //*** GUEST ************************************************************
        if (utenteLoggato == null){ 
            if (!annuncio.isChiuso()){
        %>
                <p>Esegui il <a href="javascript:void(0)" onclick="mostraLoginPopup();">login</a> oppure <a href="javascript:void(0)" onclick="mostraRegistrazionePopup();">registrati</a> per aderire a questo annuncio.</p>             
        <%  
            }
        } 
        //*** CREATORE ANNUNCIO ************************************************************
        else if (isCreatore){
            if (!annuncio.isChiuso()){ 
                //se l'annuncio non è già chiuso 
        %>
                <a href="Controller?action=chiudiAnnuncio&idAnnuncio=<%= annuncio.getId() %>">chiudi</a>
                <a href="Controller?action=rimuoviAnnuncio&idAnnuncio=<%= annuncio.getId() %>">rimuovi</a>
        <%
            }
            if (mostroDettagli==null || mostroDettagli==false){
            %>
                <a href="Controller?action=mostraAnnunciCreati&annuncio=<%=annuncio.getId()%>"> mostra adesioni</a>
            <%
            }
        }
        //*** ISCRITTO ALL'ANNUNCIO ************************************************************
        else if (isIscritto){ 
            %>
            <!-- iscrizione -->
            Sei iscritto a questo annuncio            
            <% if (mostroDettagli==null || mostroDettagli==false){ %>
                : <a href="Controller?action=mostraAnnunciIscritto&adesione=<%= adesione.getId() %>">mostra dettagli adesione</a>
            <% } %>
            
            <%
            if (!annuncio.isChiuso()){
                //se l'annuncio non è già chiuso 
            %>
                <a href="Controller?action=disiscriviDaAnnuncio&idAdesione=<%= adesione.getId() %>">disiscriviti</a>
            <% } %>
            
            <!-- pagamento -->
            <br/>
            <% if (annuncio.isChiuso()){ 
                    if (adesione.isPagata()){ %>
                        Hai gi&agrave; pagato i tuoi articoli.
            <%      } 
                    else{ 
                        if (annuncio.getDataOrdine().compareTo(new GregorianCalendar()) > 0){ %>
                            <!-- è il momento di pagare -->
                            <a href="Controller?action=mostraPagaAdesione&idAdesione=<%= adesione.getId() %>">Paga i tuoi articoli</a> 
                <%      }
                        else{ %>
                            Non hai pagato in tempo: i tuoi articoli non saranno ordinati.
            <%          }
                    } %>
                    
            <% } %>
            
            <!-- feedback -->
            <% if (annuncio.getDataOrdine().compareTo(new GregorianCalendar()) <= 0) {
                //se l'ordine è stato fatto prima di oggi
                if (!adesione.isLasciatoFeedbackPerCreatore()){ %>
                    <br/><a href="javascript:void(0)" onclick="mostraFeedbackPopup(event, <%= adesione.getId() %>, 'perCreatore');">lascia un feedback al creatore dell'annuncio</a>
            <%  } else{ %>
                    <br/>Grazie per avere lasciato un feedback!
            <%  }
            } 

        }
    
        else if (adesione!=null && adesione.getStato().equals(Adesione.StatoAdesione.IN_SOSPESO)){ %>
            Hai fatto richiesta di iscrizione a questo annuncio
            <% if (mostroDettagli==null || mostroDettagli==false){ %>
                : <a href="Controller?action=mostraAnnunciIscritto&adesione=<%= adesione.getId() %>">mostra dettagli adesione</a>
            <% } %>
            
            <%
            if (!annuncio.isChiuso()){
                //se l'annuncio non è già chiuso 
            %>
                <a href="Controller?action=disiscriviDaAnnuncio&idAdesione=<%= adesione.getId() %>">disiscriviti</a>
            <% } %>
    <%  }
        else if (adesione!=null && adesione.getStato().equals(Adesione.StatoAdesione.RIFIUTATA)){ %>
            La tua richiesta di iscrizione a questo annuncio &egrave; stata rifiutata
    <%  }
               
        //*** UTENTE NON ISCRITTO ALL'ANNUNCIO NE' CREATORE ************************************************************
        else{
            if (!annuncio.isChiuso()){
                //se l'annuncio non è già chiuso 
            %>
                <a href="javascript:void(0)" onclick="return checkIscrittoSito(event, '<%= annuncio.getSito().getUrl() %>', '<%= annuncio.getId() %>');">iscriviti</a>
            <%
            }
        }
        %>
        
        <!-- moderatore -->
        <%
            if (utenteLoggato != null && utenteLoggato.isModeratore()){
        %>
                <a href="Controller?action=cancellaAnnuncio&idAnnuncio=<%= annuncio.getId() %>">cancella annuncio</a>
        <%
            }
        %>
        
        
        
</div>